I'm sure that in most cases the default behavior of only showing published pages is probably what you want. Who needs a bunch of outdated or unfinished pages cluttering these lists, right?
But what about the case where you're trying to create a bunch of pages all at once, a series of related and therefore nested items, and you want them nested now rather than once they're published? Well, you gotta use code for that.
function __dropdown_pages_args($args) {
return array_merge($args, ['post_status' => ['publish', 'draft', 'private']]);
}
add_filter('page_attributes_dropdown_pages_args', '__dropdown_pages_args');
add_filter('quick_edit_dropdown_pages_args', '__dropdown_pages_args');
add_filter('rest_page_query', '__dropdown_pages_args');
Doing it thrice ensures that draft and private pages show up in all of the places where you can choose a parent page ⸺ the classic editor, the quick-edit form, and within Gutenberg respectively.