Sure.
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,3dtools} % https://github.com/marmotghost/tikz-3dtools
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\begin{document}
\begin{tikzpicture}[3d/install view={phi=0,theta=60},
declare function={R=3;a=2.9;b=2;h1=sqrt(R*R-a*a);h2=sqrt(R*R-b*b;},
3d/hidden/.append style={on layer=background},
3d/visible/.append style={on layer=foreground}]
\path[3d/hidden/.append style={postaction={store path=H1}},
3d/visible/.append style={postaction={store path=V1}}]
pic{3d/circle on sphere={R=R,P={(0,0,h1)}}};
\path[3d/hidden/.append style={solid,postaction={store path=H2}},
3d/visible/.append style={postaction={store path=V2}}]
pic{3d/circle on sphere={R=R,P={(0,0,h2)}}};
\draw[3d/hidden] [stored path/first coordinate of=V2] coordinate (aux2)
[stored path/first coordinate of=V1] coordinate (aux1)
(b,0,h2) -- node[below] {$b$}(0,0,h2) -- (0,0,h1)
--node[below] {$a$}(a,0,h1);
\path[3d/screen coords,fill=cyan,opacity=0.6,stored path/restore reversed path=V2]
let \p1=(aux1),\p2=(aux2),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)} in
-- (aux2) arc[start angle=\n2,end angle=\n1,radius=R]
[stored path/append path=V1]
arc[start angle=180-\n1,end angle=180-\n2,radius=R];
\path[fill=blue,opacity=0.6,stored path/restore reversed path=V2,
stored path/append path=H2] --cycle;
\draw[3d/screen coords,3d/visible] let \p1=(aux2),\n1={atan2(\y1,\x1)}
in (\n1:R) arc[start angle=\n1,end angle=-180-\n1,radius=R];
\end{tikzpicture}
\end{document}
```
![Screen Shot 2021-01-15 at 6.12.15 PM.png](/image?hash=8f31c71650bed57eb2b1e83d6887fc2584a2f0040b7384d8e5b3b7df6b69949d)