Keys will probably have to come from the dealer. Maybe try and find an online one that will sell below list price...local ones tend to have a habit of selling over MSRP...be nice and easy to work with and maybe they'll give you wholesale or something. Or you can be sneaky, wear a workshirt, and say it's a cash ticket for [random local shop with an account].
A good locksmith with a laptop and an up-to-date key programming suite should be able to do that part for you. Shop around...the dealer may be reasonable, or may not. I'd expect 0.5-1.5 hours of labor, depending on their dickishness.