I want to create store procedure of selecting record of last 3 months from 3 tables
You have several errors in your code:

don't convert timestamps back and forth between strings, dates and timestamps. A simple assignment is enough.
references to variables shouldn't be enclosed in single quotes. 'v_time' is a string, v_time1 is a reference to the variable.
procedures are not intended to return results, you need to use a function declared as returns table (...)

Putting all that together, your function should look like this:
CREATE OR REPLACE function data.select_data_last_three_month()
  returns table (... your column definitions go here ....)
  LANGUAGE plpgsql
AS 
$procedure$
declare
  v_time1 timestamp;
Begin

    v_time := current_date - 94;

    select q1.*,q2.*,q3.* 
    from  
    (select * from public.table1 where time &gt; v_time1 order by time desc) q1, --'2020-05-25 00:00:00'
    (select * from public.table2 &gt; v_time1 order by time desc)q2,
    (select * from public.table3 time &gt; v_time1 order by time desc) q3
    ;

 END;
$procedure$
;

You don't actually need PL/pgSQL for this. A language sql function would be enough.
Then use it like this:
select *
from data.delete_interface_tcp_data_three_month_back();

But I highly doubt, a cross join (cartesian product) between the three tables is what you want. If the three tables have the same structure, then you probably want a UNION ALL.