Hi. There is no simple answer to this and your question is quite general. You haven't said what level you play at now or what you are referring to as 'hard songs', nor for that matter what you consider to be fast. There are many many levels of piano and musical mastery and each time you find your self getting better you get to see a little further over the horizon of what's possible, a new level of expertise to work for.
However, having said that there both efficient and inefficient ways to practice and learn material. If you are trying to play music that you more or less already have the technique for, there are some great ways to learn it faster than is typically done (well again this is quite subjective), however if the material requires advanced techniques that you haven't yet acquired, well things are going to take more time.
There is a book (free) called 'The fundamentals of piano practice" by Chuan C. Chang
http://www.pianofundamentals.com/book You can download a pdf version as well. It's not the do all and end all of piano playing and there are some controversial ideas in there but it does have a few chapters on learning material, memorizing methods and allot on making your practice more efficient. Again I don't know how advanced you are but I would say although allot of the techniques in this book can be fantastic, they are generally more advanced ideas and I don't think they should be an excuse not to practice the basic aspects of piano playing to build a groundwork of finger strength and dexterity. I still found the book really useful though. Good luck.