Proposition: Any plane isometry is a reflection or the product of two or three reflections.
Proof: Since any plane isometry is determined by its transformation of three noncolinear points, suppose the isometry T has T(A)=A', T(B)=B' and T(C)=C' where A,B,C are the vertices of a triangle.  It is sufficient to find  a reflection or the product of two or three reflections that transform the triangle ABC to the triangle A'B'C'.
For simplicity assume that the vertices of A and A', B and B', and C and C' are pairwise distinct. The cases where one or more of the vertex pairs are not distinct are left to the reader as an exercise. [The steps below can be followed in the java sketch.]
 

Sorry, this page requires a Java-compatible web browser.

Steps 1 and 2. Constuct the segment AA' and its perpendicular bisector, Line 1.
Step 3. Reflect ABC across Line 1, giving the new triangle A'B2C2. If this new triangle is also triangle ABC then we are done and T was a single reflection.
Step 4.  Constuct the perpendicular bisector of B2B', Line 2. Notice from the fact that A'B2 is congruent to A'B', Line 2 must pass through the point A'.
Step 5. Reflect A'B2C2 across Line 2, giving the new triangle A'B'C3. If this new triangle is also triangle ABC then we are done and T was the product of two reflections.
Step 6.  Constuct the perpendicular bisector of C3C', Line 3. Notice from the fact that A'C3 is congruent to A'C' and the two triangles share the segment A'B', the segment A'B' lies in Line 3.
Conclusion: A'B'C' is the reflection of A'B'C3 across Line 3.
Therefore T was the product of three reflections.
EOP [End of Proof.]