The hard part of the magic trick is done well here, but not the easy part.
The easy part -- select three arbitrary ellipses. What is the best packing for those three arbitrary ellipses?
If the ellipses aren't arbitrary -- if you have a circle and some random points of tangency, then it's pretty easy to find non-arbitrary ellipses that pack well based on those points.
How many arbitrary ellipses can your program pack?