Is it possible to do a factory reset without losing application data?
A quick search provides:

~ Titanium Backup
~ Helium
~ (you guessed it) App Backup and Restore

http://www.androidheadlines.com/2015/02/featured-top-10-backup-apps-android.html

I've used and personally prefer Titanium