The problem is that WP will redirect to the referrer when the authentication succeeds.
Fortunately, you can also supply _wp_http_referer
and it will be preferred over the HTTP Referrer, so we need to add a hidden field to the form and fill it with the permalink of the post in question:
echo str_replace('</form>', '<input type="hidden" name="_wp_http_referer" value="' . esc_attr(get_permalink(123)) . '" /></form>', get_the_password_form(123));
with 123 being the post ID.