That's pretty good, but according to the HTTP specs URLs for "pages" do not end with a slash. URLs ending with a slash are for "folders".
I would either redirect to remove slash when the URL is not for a folder, or else just allow extensionless URL requests without a final slash to be rewritten and therefore URL requests with slash will simply return 404 if they are not for "real" folders. I prefer this latter method.
One minor technicality is that your usage of capturing the path in $1 isn't quite correct. The reason isn't obvious, but slashes are not valid in parameter values according to the HTTP specs. You might get away with it for now, but another server might reject that usage and the code fail. Be sure to document that as a comment in your code.
If your pages really are called page1, page2 and page3, you can simplify three rewites to one:
...page1/$ page1.php...
becomes
...page([123])/$ /page$2.php...
Make sure you add the standard non-www to www redirect (using a RewriteRule) before these rewrites.
Finally, your PHP redirect generates a 302 redirect. Be sure to alter the code to generate a 301 redirect instead.
Code that "almost works" can kill a site faster than code that doesn't work at all. The devil is in the details, and there's lots of them that can be gleaned only from a thorough read of the relevant documentation: HTTP specs, Apache mod_rewrite manual and previous threads in the WebmasterWorld Apache forum. :)