Yep, definitely need all the keys there (any keys not present will no longer start the car, so in the event of a stolen key doesn't turn into a stolen car). The dealership I worked at only charged one cutting/programming fee, regardless of how many keys were programmed.
We had many customers bring in aftermarket keys. I'd guess we had about a 50% success rate. And in order to find out, the key has to be cut, and all the steps taken towards programming, so you'll be on the hold for the charge, they'd probably let you grab an OEM one (assuming they have one in stock) without charging you the extra programming fee. So just be aware of the gamble, and communicate with the service department up front.
You could also try an aftermarket locksmith. They might have other options, and will almost certainly not charge you if it doesn't work. I avoid immobilizer cars personally, and my professional experience was just at the dealership.
FYI. DON'T. LOOSE. YOUR. LAST. KEY. In the name of anti-theft, Subaru has designed these systems so that you can't add a new key, without a working key present. The car will have to be towed to a dealer, engine computer and gauge cluster removed, and mailed to Subaru to be reset, sent back, reinstalled, and then keys purchased. This process can easily cost over $1000.