Async method with three internal tasks
Short and clean using null-coalescing operator:

public async Task&lt;WebData&gt; GetDataByIdAsync(GetDataById input) 
{ 
    return await DataAccess.FindDataById&lt;TwitterData&gt;(input.Id)?? 
           await DataAccess.FindDataById&lt;FacebookData&gt;(input.Id)??
           await DataAccess.FindDataById&lt;LinkedinData&gt;(input.Id); 
}