During my puppy training, the trainer showed us a way to reliably get the dog to come to you. First, he had us pick a special word that we don't use very often (we picked hussle... other picked thing like pickles, or whatever you like, as long as it's not used frequently). Then, you start "loading" the word; you say the word, click, then give a treat. After a while, the dog will understand that anytime you say that word, there are treats.
Once you've loaded that word for a while, you can use it as your come command. Call your dog with that word, say it only ONCE, and sound really happy and excited. The dog will run to you to get their treat... and of course make sure you reward her.
Zoey will not come outside when called with come... but when I say hussle, I only need to say it once, and she comes as fast as she can. Good luck with your puppy.