Accidently lost contacts and pictures are retrievable from the internal memory storage or the sd card. And you'll need to use Android recover data software to slightly scan your moto g first.
Nice question. It's possible to perform a sms recovery on Android phone. And if you want to print out text messages from phone, you can try SMS Backup & Restore app.