Why is my 2minute animation taking 5 days to render
Why?
It is normal that rendering takes a long time. You should expect that. This is the reason why animations are usually rendered on render farms using many powerful computers. If you are rendering 2 minutes in 4K at 30 frames per second for example, you have 2 x 60 x 30 = 3600 pictures to render and each of them has 3840 x 2160 = 8 294 400 pixels so that's a lot of pixels to compute. So say you are rendering with Cycles and use 2000 samples. Every one of those 8 294 400 pixels is checked 2000 times for every one of those 3600 pictures so that's really a lot of computation and will take a very long time on a single computer. It is often not practical to render on a single computer because it would take many years and there is no other option but to use tens or even hundreds of computers to render.
What can you do
Obviously you may not afford to build a render farm yourself or to buy commercial render farm services since that is expensive, but you can look into SheepIt for your hobby or even freelance projects. It is free in terms of money, but you still have to render projects for other people to collect points. This way you can render for the farm when you are not using your PC(at night for example) while you work on your animation and when the time comes, you can use the farm to render your project quickly. It has disadvantages compared to commercial solutions obviously like for example it is not that hard for other people to access your files, because they need to be sent for rendering and the farm is not that stable, it may experience technical issues more often than other solutions and there is a file size limit, it doesn't support some features like render passes and so on, but it can make certain things possible that wouln't be without it, so it's great.