Why prophet did not make any Battle with them until 3 years while Meccans made many bothered to prophet and Muslims and killed Muslims during these 3 years?
Allah never commanded the Muslims to fight before they migrated to Medina. Instead the Prophet (pbuh) was commanded many times to remind the people of the truth.
The longer Muhammad (pbuh) preached, the more people accepted Islam. Although the Muslims were being persecuted in Mecca, they still had enough protection for the message to be conveyed to the public. It was only after Abu Talib's death and a assassination attempt, when he (pbuh) and the rest of the Muslims had to end this kind of preaching and migrate.
If you look at the story of other Messengers such as Nuh (pbuh), or Musa (pbuh), then you will see the same methodology. First the messengers warn the disbelievers for a period of time (determined by Allah), and then the disbelievers (if they did not accept the message) face the consequences of their disbelief immediately afterward.
As you know about Battle of Bader,Uhud, Khandaq(first three wars ) after hijrah (migration to madinah) ,all these wars was imposed by People of Makkah(non muslim). They were afraid from Islam and think that Islam will dominate their religion,so they attack on Madinah in order to finish Islam. Prophet MUHAMMAD (Peace Be Upon Him) and his companions only protect Madinah and their life.
In Makkah Prophet MUHAMMAD (Peace Be Upon Him) do peaceful teaching but when Prophet MUHAMMAD's(SAW) and his believers life become so bad then they all migrate to Madinah.