If you have two keys, you can use the ThinkDiag system with an android phone or tablet to program a third key. You won't need it to program the start function, but you'll need it to program the unlock, lock, trunk, etc. functions. (Note that they have an Apple version of their app, but it's terrible and basically doesn't work at all.)
To program the start function, you simply need to use your two existing programmed keys:
1) Insert Key #1 and turn the car on to the "active" position. (Car on, but engine not started.)
2) Remove Key #1.
3) Very quickly, insert Key #2 and once again turn the car on to the "active" position.
4) Remove Key #2.
5) Quickly insert your new key. The system should notify you that a new key was added, and you should be able to turn the car on from there.
You have to perform these actions pretty quickly. If you hesitate, the system may not program and you'll have to start over.
After that, you can use the ThinkDiag to program the other functions.
I know this works at least up to 2009, which is what my car is, so It works with the keys you put in the column as well as the ECU keys, but beyond 2009 I can't attest to...