I have three main profile pictures: Facebook, Google and Gravatar. Is there any way to update all of them at the same time?
In your Google profile, you can use a URL to define your profile image. You can do the same in your Gravatar profile. The only place where you can't do that is on Facebook.
Your Facebook profile picture has a permanent URL,
http://graph.facebook.com/numericUserID/picture. You can then use that as your profile image for both Google and Gravatar. That way, the next time you change your Facebook profile picture, the change will be propagated to other two services.
Additionally, you can get a bigger image by adding a
type=large argument to the URL:
Was that not the purpose of Gravatar? e.g. change all your pic references to point to your Gravatar (Globally Recognized Avatar) then just update your Gravatar when you want to change it.
(Note: changes may not take right away (on any service) depending on how the caching is done)