List all pages including archive

Yep, this is definitely possible. Grab your post types and insert them in $post_types to loop through every one of them to manually generate the archives and posts:

<?php
// post types of your choice
$post_types = array( 'page', 'work', 'people' );

$wp_cats = array();
foreach ( $post_types as $post_type ) {

    $pages = get_pages( array( 'post_type'=>$post_type, 'posts_per_page'=>-1, 'post_status'=>'publish', 'depth'=> 0 ) );

    $obj = get_post_type_object( $post_type );
    // output custom post type archive with link
    echo '<a href="' . get_post_type_archive_link( $post_type ) . '">' . $obj->labels->singular_name . '</a><br />';

    foreach ( $pages as $page ) {
       $wp_cats[$page->ID] = $page->post_title;
       // output posts with link
       echo '<a href="' . get_permalink($page->ID) . '">' . $page->post_title . '</a><br />';
    }
}
?>

Note: As you can see this will output plain links; I think you can easily adjust the HTML-markup yourself as you didn’t request something special in your question.

You can also auto-generate the structure via wp_list_pages(), but this is sometimes getting tricky if you’ll need a custom HTML-markup:

<?php
// post types of your choice
$post_types = array( 'page', 'work', 'people' );

foreach ( $post_types as $post_type ) {
    // generate complete list links and titles
    wp_list_pages( array( 'post_type'=>$post_type, 'title_li'=>$post_type ) );
}
?>