Creating a related posts section in wordpress inside a default post

function related_posts_shortcode( $atts, $content = null ) {
     //extract the shortcode atts and set default
     extract( shortcode_atts( array(
         'cat' => '',
         'limit' => 4
     ), $atts ) );

     //store the current post ID so we don't display it as featured
     $post_ID = get_the_ID();

     //set up our args for the query
     $args = array(
         'cat' => $cat,
         'posts_per_page' => $limit
     );

     $html="";
     $i = 0;

     //query for our posts
     $posts = new WP_Query( $args );

     //if we have posts, loop them
     if( $posts->have_posts() ): while( $posts->have_posts() ): $posts->the_post();
         //check to make sure not the same post as main post
         if ( $post_ID != get_the_ID() )
             //if post has thumbnail display it with link to post
             if ( has_post_thumbnail( get_the_ID() ) ) {
                 $html .= '<a href="' . get_the_permalink(); . '">';
                     $html .= get_the_post_thumbnail( get_the_ID() );
                 $html .= '</a>';
             }
             $html .= '<a href="' . get_the_permalink(); . '">';
                $html .= '<h2>' . get_the_title() . '</h2>'; //set link on title and display it
             $html .= '</a>';
             ++$i;
         }

         //if $i == 2 ( $limit default - 2 ) we have three posts so break, change for more posts, i just went off of your image example
         if ( $i == $limit - 2 ) break;
     endwhile;
     endif;

     //even though WP_Query doesn't effect the main loop, reset it as precaution
     wp_reset_query();

     //return generated html for recent posts
     return $html;
}

add_shortcode( 'related_posts', 'related_posts_shortcode' );

Add the following code to your functions.php file and then in your post you can do:
[related_posts cat="6" limit="4"/] with cat being the category of posts you want and limit being the amount of related posts you want (+1): the reason for the plus one is because you don’t want to return the current post so we leave one extra in case we hit current post in our loop. you can use this in any post too. if you want to use it in a template just do: <?php do_shortcode("[related_posts cat="6" limit="4"/]"); ?>
hope this is helpful!