If I apply Cumulative Update 3 in SQL Server 2012 SP1, do I still have to do Cumulative update 1 and 2 before I can apply CU 3? And also, how would you know what CU's or hot fixes that has already been applied in SQL Server?
No. Each CU contains all the fixes in the CUs prior to it.
For the second part of the question, the only RELIABLE way supported across most versions (2005+) is to get a 4 part number and compare it to any of the comprehensive build lists available on the internet:
You can also check @@Version but it's not reliable, as some older CUs don't list their CU number as they were meant to. You can also try Serverproperty('ProductUpdateLevel') but it's only supported on a few newer versions and service packs of SQL Server.
So I stick with build numbers. Most DBAs have one script or another to pull data from web sources into a table to do translations.
If in doubt start the CU installer and it will check whether it's needed or not. It won't let you continue upgrading if you've already upgraded everything on the server.