Show only top 3 posts from 3 categories in order on home page

There are multiple ways to go about this, but one way I would consider if I were you would be to do it like this. On the index.php or whatever page the posts appear on do the following three times each with different categories:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$arguments = array(
    'category_name' => 'category'
    'posts_per_page' => 3,
    'paged' => $paged
);
$wp_query->query($arguments);
if (have_posts()) :
   while (have_posts()) : the_post();
       the_content();
    endwhile;
endif;

The category_name can be a comma delimited string that should allow you to have three or more categories.

The paged parameter is needed when setting the posts per page this way. If that isn’t done, then the posts don’t show up correctly on the subsequent post pages.

The WP_Query reference, shows all the filters that can used in the query. It also offers up an alternative way of using the query.