The good news about a 503 Service Unavailable is that the server is not too overloaded to respond. Often a a server has capacity available and can be configured to accept more requests. If you are using Apache, you could try increasing the MAX_CLIENTS setting in the configuration file. The reason that there is such a setting is that too many requests may just grind the server to a screeching halt, increasing the load average so much that you can't even log into the machine to adjust settings.
You could also investigate making your website more efficient. You could try:
- Reducing the number of images on each page
- Combining small images in the page template together into "sprites"
- Combining Javascript and CSS files
- Moving images, javascript, and css onto a subdomain which could be moved to another (cheap) host or CDN
- Enabling mod_gzip page compression, making downloads faster and freeing up server resources
- Changing how php is served to make it more efficient. For example by moving to mod_php from mod_cgi.
The other solution to this type of problem is to put advertising on your pages. Advertising usually makes enough money to pay for hosting. As part of a non-profit community, you may have constituents that are opposed to having advertising on the site, but I would make the case that money generated by ads that will keep the site/project going, is beneficial to the community.