Archiving data in SQL Server with stored procedure
What do you mean by archive? Do you want to delete the data? 

Moving it to another db or server will still take up the same space. It may improve performance but you're just moving the problem around. 

Do you need the data in its original form? Can you aggregate the data to reduce the number of rows? 

If you do move the data to another table you may find a clustered columnstore may give better compression and save disk space. 

Personally i would be using ssis and not  a sp using linked servers. As you have a primary key id be using that as a way of identifying what has been inserted and then can be deleted from the original table. An index on the column you are using for date range would be extremely beneficial. Id also consider using smaller batches such as one days worth at a time.