Agree that best practice is to put each site in its own app pool. Grouping them together wont save you much as far as memory consumption, and will lead to larger risks down the line.
Things you can do to help is make sure that your app pools are set to recycle nightly. I configure all of mine to recycle at 1:00 AM, instead of the default of every 1740 mins (29 hours) since that will cause them to recycle during the day at some point. Another thing you can implement if memory is a concern is to have them recycle based on reaching a certain memory limit. Usually the problems with worker processes centers around virtual memory, so for my high transaction apps I have them set to recycle at around 1400 MB, or 1.4 GB. Here's an example of that configuration: