Unfortunately if he is between 2 and 3 years of age he is at the end of his life expectancy. The normal life span for one is 2 years so you have done a great job. He may have a tumor somewhere that is causing all of these things as they are very common in hamsters- or it could be just plain old old age. The most humane thing to do would be to take him to the vet for an exam. Please prepare yourself though as he is most likely going to tell you it is his time. The best thing you can do ,if he tells you this, is to let the vet humanely put him to sleep so he does not suffer.
__________________
If my answer was helpful please click the green accept button My answer should not take the place of a Vet's diagnosis when needed. Positive feedback is most welcome and a bonus-though not required-is greatly appreciated no matter how small.

