How can I use 1 motor for grabbing/lifting and another for moving? I am really stuck on how to use the three motors for better functions. Is there anyway in which I can use 1 motor for efficient/quick movement while turning left and right?

Another thing is whether I could use a single motor for turning objects 180 degrees on one side and lifting objects on the other end of the robot, is that possible? alternatively, is it possible to lift and grab using a single motor?

Lastly, would it be less efficient to use two NXT bricks to increase motors capacity?
Is there anyway in which I can use 1 motor for efficient/quick movement while turning left and right?


Yes, if you use one motor to drive a wheel and another to steer the vehicle. Using an NXT motor for steering would be quite wasteful however, you should at least use gearing to convert the jittery, fast movement of the NXT motor into slower, more balanced steering. You could also look into using Power Functions parts, the servo motor being the obvious choice for steering applications.


  Another thing is whether I could use a single motor for turning objects 180 degrees on one side and lifting objects on the other end of the robot, is that possible?


If these two need to operate separately, then you will need to sacrifice some functionality. It is possible to split a motor's output into two axles in a configuration that drives only one axle depending on the direction of the motor. See this setup: How can I make a precise one-way clutch using Technic elements?
This will only allow either axle to turn in one direction only, so if you need lifting AND putting back, you'll need to solve it as a circular function. Driven by the only input axle that is turning in one direction, the lift would need to raise and lower back to the original position without any other input.


  alternatively, is it possible to lift and grab using a single motor?


Using some clever mechanics, it is certainly possible. The 8868 Air Tech Claw Rig/Materials Handler used something like this to automatically grab an object, raise its arm, open the claws, drop the arms and start the cycle again. All this using a single motor (and some pneumatics). In this way though you won't get any control over the details (how high it lifts, etc) or over the sequence itself (you can't grab and release something without lifting it).


  Lastly, would it be less efficient to use two NXT bricks to increase motors capacity?


You could certainly use two NXTs and have control over 6 motors. This would however require more batteries, result in a larger and heavier model and necessitate some kind of synchronisation between the NXTs. All of these drawbacks can be mitigated, so if you can't seem to solve the problem using engineering (or have proven that it is impossible to achieve your goals using only 3 motors) then feel free to throw in another NXT.

If you need to increase the number of available motors, you could look into using third party parts, like this motor multiplexer that allows you to use two motors on one sensor port.