Mobius[z_]:=I ((1+z)/(1-z));
ReIm:={Re[#],Im[#]}&
ComPolar[{z_,f_}]:={Re[z],Im[z],f}
Torus[{a_,b_,ϕ_}]:={(1+a)Sin[ϕ],(1+a)Cos[ϕ],b}
τArg:=Mod[Arg[#],2π]&
Rot[Ω_]:=RotationTransform[Ω,{0,0,1}]
Unwrap[z_]:={Abs[z]-3,τArg[z]}
ComPolar2[{{a_,b_},f_}]:={a,b,f};

ParametricPlot3D[Table[{r Cos[θ-π/(2p)],r Sin[θ-π/(2p)], ((Abs[r Exp[I θ]])^4)f2[τArg[r Exp[I θ]]]+2π n/q},{n,0,q}],{r, 0,1},{θ,0,2π},Mesh->None,PlotRange->All,Exclusions->True,PlotPoints->20,PerformanceGoal->"Speed"]

outside=Table[Torus@Rot[0]@ComPolar2[{Unwrap@(r Exp[I(θ-π/(2p))]), ((Abs[r Exp[I θ]])^4)f2[τArg[r Exp[I θ]]]+2π n/q}],{n,0,1}]//ComplexExpand//Simplify;

Show[
ParametricPlot3D[outside,{r, 0,1},{θ,0,2π},Mesh->None,PlotPoints-> 30,PerformanceGoal->"Quality",PlotRange->All],knot

]