Matching values to a lookup worksheet
General points


both wSheet and destSheet points to "Sheet2", I suppose you don't need both
while you can save a few lines using :, it's generally considered to be a bad practice to use them.
functions are generally more or less portable, hardcoding sheet names in them makes it impossible. You could pass sheet names as arguments
lookUpRange is not declared


You should always use Option Explicit in your code

Dim Found As Range - it's name suggests it's a boolean, not a range
lr = wSheet.Cells(wSheet.Rows.Count, "A").End(xlUp).Row - you set the value at the beginning, but never use it, just overwrite
ActiveWorkbook.Sheets("Sheet2").Range("P1").Value = "LookupVal" You've declared variables for Sheet2, why don't use them?
... and a lot of other similar issues


General performance


you can use these at the beginning of your codeto speed up your code:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
to perform calculations after inserting the formulas use
Application.calculate


Specific suggestion

.Range("$A:$C").AutoFilter Field:=2, Criteria1:="&lt;&gt;"
Set Found = .Range("A:A").Find(What:=wSheet.Cells(i, "A").Value, _
    LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _                                                                 
    MatchCase:=False)
If Not Found Is Nothing Then
    wSheet.Cells(i, "P").Value = Found.Offset(, 2).Value
End If


It's difficult to give the best solution without looking your data, but here I'd definitely use some formula (Index / match / row / ...) instead of filtering the data thousands of times. Or at least sort data to avoid some of the filtering.