fC[q_,p_]=p^2-2 Cos[q];
powierzchnia=Plot3D[fC[q,p],{q,-10,10},{p,-4,4}]

(* przecinamy płaszczyznami na różnych poziomach *)
plaszczyzna[a_]:=Plot3D[a,{q,-10,10},{p,-4,4}]
plaszczyzna[2]
Show[powierzchnia,plaszczyzna[2],ViewPoint->Bottom]

Manipulate[Show[powierzchnia,plaszczyzna[a],PlotRange->{-5,15}],{a,-4,10}]

(* Separatrysa *)
Plot[2Abs[Cos[1/2q]],{q,-10,10}]

(* Portret fazowy *)
ContourPlot[fC[q,p],{q,-10,10},{p,-4,4},Contours->20]

ContourPlot[fC[q,p]==0,{q,-10,10},{p,-4,4}]