You see I have tortured him for quite some time
You sure have.
in order to teach him a lesson.
What lesson? At this point what exactly do you want him do and what are you trying to achieve? He already feels bad about this, do you want to him to feel worse ?
Look, 3 years is still very young and kids learn in small steps by trial and error. If at first you don't succeed try again. And again. And again until he gets it. Praise the successes and don't make a big deal out of the failures.
After a long day on the playground he probably was just tired and overwhelmed. Not a good time to pick a fight. You could have simply said. "Ok I see you are too tired to carry your bike home. But it's your bike and not mine and this is your job. If you can't do it, I will do it for you but then we'll have to put it away for a week until you are a little stronger. Than we can try again"
Rinse & repeat until he gets it. If need be, you can increase the time outs, or make thethem shorter for getting half way home.
I could easily invent a story where the girl just gives it back, but is that a good way?
In my opinion lying is one of the worst things you can do as a parent. It erodes the trust foundation which is a very fragile thing and really, really important especially once they are teenagers. So you feel that not taking care of toys is a problem, but lying is ok ? I can't say that I agree with these priorities.
Here is what I would do: come clean and tell him the truth. That you wanted to teach him lesson and didn't tell him what really happened. Tell him that this was a mistake on your part and that it will never happen again. And here, by the way, is your bike.