You can try this:
add_shortcode( 'content','content_callback' );
function content_callback( $atts, $content = NULL ){
$atts = shortcode_atts(array(
'pid' => '',
), $atts);
if( ! is_int( 1 * $atts['pid'] ) )
return "<!-- Shortcode Error: pid must be an integer -->";
if( absint( $atts['pid'] ) === get_the_ID() )
return "<!-- Shortcode Error: pid can't be the current id -->";
$queried_post = get_post( absint( $atts['pid'] ) );
if( ! is_object( $queried_post ) )
return "<!-- Shortcode Error: Post not found! -->";
$postcontent = do_shortcode( $queried_post->post_content );
$title = $queried_post->post_title;
$finaloutput = $title . $postcontent;
return $finaloutput;
}
where the shortcode is used like this:
[content pid="2069"]
where pid
is some post ID.