In Android Is it possible to access the physical layer of 2G/3G to transmit voice/data I wanted to make an walkie talkie app in android, i know there are a lot of apps like these but they use the Wi-fi or they are just web services. But if we want to like transmit voice/data on 2G/3G frequencies, is there an option in android ? or "is it even legal ?" considering it will be a short range transmission.

i know that 2G/3G are not device-device communication systems but if we can directly access the physical layer of 2G/3G(the transmission hardware) of the phone then we can transmit data through it.
The short answer is No, the baseband firmware is not for public usage (read carefully, I am referring to the programmatic details of this, i.e. API's) 

The baseband radio is isolated and proprietary and does not "exist" outside the realm of Android, rather, its using libraries which are closed source that interacts with the radio firmware.

If you are curious to know exactly behind the scenes in how Android works with the radio firmware, look at my answer on StackOverflow, it is technically orientated but will emphasize my previous paragraph.

And also, for consideration, to be honest, there is a grey area involved in using the GSM frequencies for short band transmission like as in Walkie Talkies, and furthermore, those GSM frequencies are explicitly reserved for the usage of GSM network traffic, 900Mhz, 1800Mhz, 2100Mhz. 

Another aspect, you may have to acquire a license for this to be able to do so as far as laws are concerned within the jurisdiction of your country. - That I do not know!

Edit:

Radio FM apps that receives radio broadcasts of music, news etc, that is a different story, that uses a FM transmitter which is a S-o-C; this will vary depending on the chip-set used, so do not get that mixed up either with Radio firmware as far as 2G/3G is concerned :) 

Disclaimer: I am not a legal expert, but if, and this is a big if this is possible, to do this - take heed and consult with your local laws.