If you really need a Graphics
object that represents a "sliced" version of the boundary curve (instead of just hiding one half of the line as in Algohi's solution which I also upvoted because it's easier), then you can achieve that as follows:
g = ParametricPlot[{(1 + Cos[t]) Cos[t], (1 + Cos[t]) Sin[t]}, {t, 0,
2 Pi}, PlotRange -> {{-0.5, 2.2}, {-1.5, 1.5}},
PlotStyle -> {Thickness[0.06]}];
h = ParametricPlot[{(1 + Cos[t]) Cos[t], (1 + Cos[t]) Sin[t]}, {t, 0,
2 Pi}, PlotRange -> {{-0.5, 2.2}, {-1.5, 1.5}},
PlotStyle -> {Thickness[0.0035], White, Dashed}];
pts = Polygon[First[Cases[g, Line[x_] :> x, Infinity]]];
rdf = SignedRegionDistance[pts];
rp = With[{thickness = .1},
RegionPlot[
0 < rdf[{x, y}] < thickness, {x, -.7, 2.5}, {y, -1.6, 1.6},
PlotStyle -> Darker[Blue], BoundaryStyle -> None,
PlotPoints -> 50]
];
Show[rp, h, Background -> Lighter[Orange]]

After reproducing the definitions of g
and h
from the question, I extract the boundary points of the parametric curve from g
and use them to define a geometric Region
by turning them into a Polygon
for which we can then compute the signed distance in the function rdf
. The function SignedRegionDistance
yields 0
when you're on the line defined by the original plot g
and h
, and has a positive value outside that region. This can be used to impose a desired thickness
in the RegionPlot
that I store in the result rp
, which then consists of a polygon that describes the desired shape with the desired thickness, but is outlined only in the outward direction.
To show that the graphics object is indeed the desired longitudinal slice, I superimpose it on the dashed parametric curve h
with an added background that proves that nothing was hidden by overlying opaque regions.
The quality of the polygon can be changed by adjusting the PlotPoints
option in RegionPlot
. If necessary, you can also extract the polygon from the RegionPlot
by doing First@Normal@rp
.